package com.dragon.modules.yuegou.mapper.product;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dragon.modules.yuegou.entity.product.StockEntity;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

/**
 * 库存信息表 Mapper接口
 *
 * @author px
 * @date 2019-04-17 14:44:42
 * @version 2.0
 */
@Component("proStockMapper")
public interface StockMapper extends BaseMapper<StockEntity> {

	/**
	 * 更新库存（用于调整库存余量的场景）
	 * 
	 * @param skuId      SKU ID
	 * @param increase   库存修改
	 * @param modifiedBy 更新人ID
	 * @return 更新数量，0表示更新失败，1表示更新成功
	 */
	int updateStock(@Param("skuId") String skuId, @Param("increase") int increase,@Param("modifiedBy") String modifiedBy);

	/**
	 * 更新总量（用于调整库存总量的场景）
	 * 
	 * @param skuId      SKU ID
	 * @param oldStock   旧库存余量（当做乐观锁版本号使用）
	 * @param newTotal   新库存总量
	 * @param modifiedBy 更新人ID
	 * @return 更新数量，0表示更新失败，1表示更新成功
	 */
	int updateTotal(@Param("skuId") String skuId, @Param("oldStock") int oldStock, @Param("newTotal") int newTotal,
			@Param("modifiedBy") String modifiedBy);

}
